home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / ccas01.arc / M8086.MAC < prev    next >
Encoding:
Text File  |  1986-03-15  |  1.8 KB  |  115 lines

  1. ;**
  2. ;
  3. ; This macro library defines the operating environment for the various
  4. ; 8086 memory models.
  5. ;
  6. ;**
  7. MSDOS    EQU    2
  8.  
  9. ;**
  10. ;
  11. ; The following symbols define the 8086 memory mode being used.  Set LPROG
  12. ; to 1 for a large program segment (greater than 64K-bytes), and set LDATA
  13. ; to 1 for a large data segment.
  14. ;
  15. ;**
  16. LPROG    EQU    0
  17. LDATA    EQU    0
  18.  
  19. ;**
  20. ;
  21. ; The following symbols are established via LPROG and LDATA as follows:
  22. ;
  23. ;    S8086    set for small model (small prog, small data)
  24. ;    D8086    set for model with large data, small prog
  25. ;    P8086    set for model with large prog, small data
  26. ;    L8086    set for large model
  27. ;
  28. ;**
  29.     IF    (LPROG EQ 0) AND (LDATA EQ 0)
  30. S8086    EQU    1
  31. D8086    EQU    0
  32. P8086    EQU    0
  33. L8086    EQU    0
  34.     ENDIF
  35.  
  36.     IF    (LPROG EQ 0) AND (LDATA NE 0)
  37. S8086    EQU    0
  38. D8086    EQU    1
  39. P8086    EQU    0
  40. L8086    EQU    0
  41.     ENDIF
  42.  
  43.     IF    (LPROG NE 0) AND (LDATA EQ 0)
  44. S8086    EQU    0
  45. D8086    EQU    0
  46. P8086    EQU    1
  47. L8086    EQU    0
  48.     ENDIF
  49.  
  50.     IF    (LPROG NE 0) AND (LDATA NE 0)
  51. S8086    EQU    0
  52. D8086    EQU    0
  53. P8086    EQU    0
  54. L8086    EQU    1
  55.     ENDIF
  56.  
  57.  
  58. ;**
  59. ;
  60. ; The DSEG and PSEG macros are defined to generate the appropriate GROUP
  61. ; and SEGMENT statements for the memory model being used.  The ENDDS and
  62. ; ENDPS macros are then used to end the segments.
  63. ;
  64. ;**
  65. DSEG    MACRO
  66. DGROUP    GROUP    DATA
  67. DATA    SEGMENT WORD PUBLIC 'DATA'
  68.     ASSUME    DS:DATA
  69.     ENDM
  70. ENDDS    MACRO
  71. DATA    ENDS
  72.     ENDM
  73.  
  74.     IF    S8086
  75. PSEG    MACRO
  76. PGROUP    GROUP    PROG
  77. PROG    SEGMENT BYTE PUBLIC 'PROG'
  78.     ASSUME    CS:PROG
  79.     ENDM
  80. ENDPS    MACRO
  81. PROG    ENDS
  82.     ENDM
  83.     ENDIF
  84.  
  85.     IF    D8086
  86. PSEG    MACRO
  87. CGROUP    GROUP    CODE
  88. CODE    SEGMENT BYTE PUBLIC 'CODE'
  89.     ASSUME    CS:CODE
  90.     ENDM
  91. ENDPS    MACRO
  92. CODE    ENDS
  93.     ENDM
  94.     ENDIF
  95.  
  96.     IF    P8086
  97. PSEG    MACRO
  98. _CODE    SEGMENT BYTE
  99.     ASSUME    CS:_CODE
  100.     ENDM
  101. ENDPS    MACRO
  102. _CODE    ENDS
  103.     ENDM
  104.     ENDIF
  105.  
  106.     IF    L8086
  107. PSEG    MACRO
  108. _PROG    SEGMENT BYTE
  109.     ASSUME    CS:_PROG
  110.     ENDM
  111. ENDPS    MACRO
  112. _PROG    ENDS
  113.     ENDM
  114.     ENDIF
  115.